package com.zhanghe.springsecurity.Service;

import com.zhanghe.springsecurity.jwt.JwtUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import java.util.Map;

/**
 * TokenService
 *
 * @author Clevo
 * @date 2018/4/18
 */
@Component
public class TokenService {
    
    @Value("${gnnt.auth.seret}")
    private String secret;
    /**
     *
     * 功能：生成 jwt token<br/>
     * @param name	实例名
     * @param param	需要保存的参数
     * @param expirationtime	过期时间(单位:分钟)
     * @return
     * @exception   无
     * @since   	首次创建（zhanghe  2018-3-27)<br/>
     *
     */

    public String sign(String name, Map<String,Object> param, long expirationminutes){
        return JwtUtil.sign(name, param, secret, expirationminutes*60*1000);
    }
    /**
     *
     * 功能：从token中获取数据<br/>
     * @param jwt token
     * @param key	需要获取的key
     * @return
     * @exception   无
     * @since   	首次创建（zhanghe  2018-3-28)<br/>
     *
     */
    public Object getValueFromToken(String jwt,String key){
        return JwtUtil.verify(jwt, secret).get(key);
    }
}
